package com.hyt.it.ogt.ykcj.service.grade;


import java.util.List;
import java.util.Map;

import com.hyt.it.ogt.ykcj.common.core.domain.entity.SysUser;
import com.hyt.it.ogt.ykcj.domain.exam.ExamSubjectInfo;
import com.hyt.it.ogt.ykcj.domain.grade.ExamineeSubjectGradeInfo;
import com.hyt.it.ogt.ykcj.domain.vo.ExamineeSubjectGradeInfoVo;

/**
 * 考生考试科目成绩信息Service接口
 * 
 * @author admin
 * @date 2021-06-17
 */
public interface IExamineeSubjectGradeInfoService 
{
    /**
     * 查询考生考试科目成绩信息
     * 
     * @param subjectGradeId 考生考试科目成绩信息ID
     * @return 考生考试科目成绩信息
     */
    public ExamineeSubjectGradeInfo selectExamineeSubjectGradeInfoById(String subjectGradeId);

    /**
     * 查询考生考试科目成绩信息列表
     * 
     * @param examineeSubjectGradeInfo 考生考试科目成绩信息
     * @return 考生考试科目成绩信息集合
     */
    public List<ExamineeSubjectGradeInfo> selectExamineeSubjectGradeInfoList(ExamineeSubjectGradeInfo examineeSubjectGradeInfo);

    /**
     * 新增考生考试科目成绩信息
     * 
     * @param examineeSubjectGradeInfo 考生考试科目成绩信息
     * @return 结果
     */
    public int insertExamineeSubjectGradeInfo(ExamineeSubjectGradeInfo examineeSubjectGradeInfo);

    /**
     * 修改考生考试科目成绩信息
     * 
     * @param examineeSubjectGradeInfo 考生考试科目成绩信息
     * @return 结果
     */
    public void updateExamineeSubjectGradeInfo(ExamineeSubjectGradeInfoVo examineeSubjectGradeInfo);

    /**
     * 新增考生考试科目成绩信息
     *
     * @param examineeSubjectGradeInfo 考生考试科目成绩信息
     * @return 结果
     */
    public void addExamineeSubjectGradeInfo(ExamineeSubjectGradeInfo examineeSubjectGradeInfo, SysUser user);

    /**
     * 批量删除考生考试科目成绩信息
     * 
     * @param subjectGradeIds 需要删除的考生考试科目成绩信息ID
     * @return 结果
     */
    public int deleteExamineeSubjectGradeInfoByIds(String[] subjectGradeIds);

    /**
     * 删除考生考试科目成绩信息信息
     * 
     * @param subjectGradeId 考生考试科目成绩信息ID
     * @return 结果
     */
    public int deleteExamineeSubjectGradeInfoById(String subjectGradeId);

    /**
     * 初始化科目成绩信息
     * @param examineeSubjectGradeInfo
     * @param subjectInfoMap
     * @param gradeId
     * @param user
     */
    public void initSubjectGradeInfo(ExamineeSubjectGradeInfo examineeSubjectGradeInfo, Map<String, ExamSubjectInfo> subjectInfoMap, String gradeId, SysUser user);

    /**
     * 成绩批量失效自动任务
     */
    public void batchInvalidGradeInfo();
}
